CosyOS-II API 用户参考手册  1.0.3
宏定义
设置阻塞(时间)

设置、修改指定任务的阻塞时间,前提是该任务当前已为阻塞或浮动状态。
理想误差:-1tick。 更多...

设置阻塞(时间) 的协作图:

宏定义

#define uSetBlock_tc(task, tc)    sUSV_SetBlock(u_taskhandle_##task, tc)
 设置阻塞-滴答周期 更多...
 
#define uSetBlock_ms(task, ms)    uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
 设置阻塞-毫秒 更多...
 
#define uSetBlock_s(task, s)    uSetBlock_ms(task, 1000UL * (s))
 设置阻塞-秒钟 更多...
 
#define uSetBlock_m(task, m)    uSetBlock_s(task, 60UL * (m))
 设置阻塞-分钟 更多...
 
#define uSetBlock_h(task, h)    uSetBlock_m(task, 60UL * (h))
 设置阻塞-小时 更多...
 

详细描述

设置、修改指定任务的阻塞时间,前提是该任务当前已为阻塞或浮动状态。
理想误差:-1tick。

警告
按 毫秒、秒钟、分钟、小时 设置,用户需自己保证时间的有效性(可被系统滴答周期整除)。
无限阻塞(阻塞时间为无限长),仅能通过调用 xSetBlock_tc(task, ~0) 来实现。

宏定义说明

#define uSetBlock_h (   task,
 
)    uSetBlock_m(task, 60UL * (h))

设置阻塞-小时

参数
[in]task任务名称
[in]h小时(阻塞时间)
0:清除阻塞
返回
错误码(s_ecode_t)
返回值
OS_ECODE_NOERROR无错误
OS_ECODE_TASKNOTBLOCKED任务未阻塞
OS_ECODE_TASKNOTSTARTED任务未启动/已删除
注解
同型服务:
tSetBlock_h(task, h),同返回。
iSetBlock_h(task, h),无返回。
pSetBlock_h(task, h),无返回。

在文件 ur_api.h478 行定义.

#define uSetBlock_m (   task,
 
)    uSetBlock_s(task, 60UL * (m))

设置阻塞-分钟

参数
[in]task任务名称
[in]m分钟(阻塞时间)
0:清除阻塞
返回
错误码(s_ecode_t)
返回值
OS_ECODE_NOERROR无错误
OS_ECODE_TASKNOTBLOCKED任务未阻塞
OS_ECODE_TASKNOTSTARTED任务未启动/已删除
注解
同型服务:
tSetBlock_m(task, m),同返回。
iSetBlock_m(task, m),无返回。
pSetBlock_m(task, m),无返回。

在文件 ur_api.h462 行定义.

#define uSetBlock_ms (   task,
  ms 
)    uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)

设置阻塞-毫秒

参数
[in]task任务名称
[in]ms毫秒(阻塞时间)
0:清除阻塞
返回
错误码(s_ecode_t)
返回值
OS_ECODE_NOERROR无错误
OS_ECODE_TASKNOTBLOCKED任务未阻塞
OS_ECODE_TASKNOTSTARTED任务未启动/已删除
注解
同型服务:
tSetBlock_ms(task, ms),同返回。
iSetBlock_ms(task, ms),无返回。
pSetBlock_ms(task, ms),无返回。

在文件 ur_api.h430 行定义.

#define uSetBlock_s (   task,
 
)    uSetBlock_ms(task, 1000UL * (s))

设置阻塞-秒钟

参数
[in]task任务名称
[in]s秒钟(阻塞时间)
0:清除阻塞
返回
错误码(s_ecode_t)
返回值
OS_ECODE_NOERROR无错误
OS_ECODE_TASKNOTBLOCKED任务未阻塞
OS_ECODE_TASKNOTSTARTED任务未启动/已删除
注解
同型服务:
tSetBlock_s(task, s),同返回。
iSetBlock_s(task, s),无返回。
pSetBlock_s(task, s),无返回。

在文件 ur_api.h446 行定义.

#define uSetBlock_tc (   task,
  tc 
)    sUSV_SetBlock(u_taskhandle_##task, tc)

设置阻塞-滴答周期

参数
[in]task任务名称
[in]tc滴答周期(阻塞时间)
+0:清除阻塞
~0:无限阻塞
返回
错误码(s_ecode_t)
返回值
OS_ECODE_NOERROR无错误
OS_ECODE_TASKNOTBLOCKED任务未阻塞
OS_ECODE_TASKNOTSTARTED任务未启动/已删除
注解
同型服务:
tSetBlock_tc(task, tc),同返回。
iSetBlock_tc(task, tc),无返回。
pSetBlock_tc(task, tc),无返回。

在文件 ur_api.h414 行定义.